package cn.fl.product.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.product.vo.PrdCarInfoVO;
import fl.product.facade.product.dto.PrdCarInfoDTO;

 /**
 * @Description: 乘用车/专车产品信息表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class PrdCarInfoVOTransform {


	/**
	 * DTO 转  VO
	 * @param po PrdCarInfoDTO
	 * @return PrdCarInfoVO
	 */
	public static PrdCarInfoVO toVO(PrdCarInfoDTO dto) {
		PrdCarInfoVO  vo = null;
		if (dto != null) { 
			vo = new PrdCarInfoVO();
			vo.setId(dto.getId());
			vo.setPrdId(dto.getPrdId());
			vo.setCarLen(dto.getCarLen());//车身长度
			vo.setPrdYr(dto.getPrdYr());//生产年份（PRD0010）
			vo.setPrdCyCd(dto.getPrdCyCd());//国别代码（PRD0011）
			vo.setOutVol(dto.getOutVol());//排量(L)
			vo.setGrboxTypCd(dto.getGrboxTypCd());//变速箱类型代码（PRD0012）
			vo.setGrboxCfg(dto.getGrboxCfg());//GRBOX_CFG
			vo.setSeatQtyCd(dto.getSeatQtyCd());//座位（PRD0013）
			vo.setEngMdl(dto.getEngMdl());//发动机型号
			vo.setDrvTypCd(dto.getDrvTypCd());//驱动形式（PRD0003）
			vo.setCarStrcCd(dto.getCarStrcCd());//车身结构（PRD0014）
			vo.setCarStrcCfg(dto.getCarStrcCfg());//CAR_STRC_CFG
			vo.setPowerTypCd(dto.getPowerTypCd());//动力方式（PRD0015）
			vo.setCarCl(dto.getCarCl());//CAR_CL
			vo.setMaxSpd(dto.getMaxSpd());//MAX_SPD
			vo.setPrdWayCd(dto.getPrdWayCd());//生产方式（PRD0016）
			vo.setCarMdl(dto.getCarMdl());//CAR_MDL
			vo.setOthCfg(dto.getOthCfg());//OTH_CFG
			vo.setIsValid(dto.getIsValid());
			vo.setAudStsCd(dto.getAudStsCd());
			vo.setGuidePc(dto.getGuidePc());
			vo.setEmiStdCd(dto.getEmiStdCd());
			vo.setBatDeg(dto.getBatDeg());
			vo.setExtMil(dto.getExtMil());
			vo.setCarVol(dto.getCarVol());
			vo.setPrdLvlCd(dto.getPrdLvlCd());

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
			
			vo.setPrdCyCdNm(dto.getPrdCyCdNm());//国别
			vo.setGrboxTypCdNm(dto.getGrboxTypCdNm());//变速箱类型
			vo.setSeatQtyCdNm(dto.getSeatQtyCdNm());//座位
			vo.setDrvTypCdNm(dto.getDrvTypCdNm());//驱动形式
			vo.setCarStrcCdNm(dto.getCarStrcCdNm());//车身结构
			vo.setPowerTypCdNm(dto.getPowerTypCdNm());//动力方式
			vo.setPrdWayCdNm(dto.getPrdWayCdNm());//生产方式
			vo.setAudStsCdNm(dto.getAudStsCdNm());
			vo.setIsValidNm(dto.getIsValidNm());
			vo.setCarStrcCfgNm(dto.getCarStrcCfgNm());//车身结构配置codeNm
			vo.setPrdBscInfoVO(PrdBscInfoVOTransform.toVO(dto.getPrdBscInfoDTO()));//产品基本信息
			//--------------------扩展数据----------------------------------//
			vo.setPrdTypCd(dto.getPrdTypCd());
			vo.setMfrId(dto.getMfrId());
			vo.setBrCd(dto.getBrCd());
			vo.setPrdMdl(dto.getPrdMdl());
			vo.setPrdNm(dto.getPrdNm());
			vo.setMfrNm(dto.getMfrNm());
			vo.setPrdTypCdNm(dto.getPrdTypCdNm());
			vo.setBrCdNm(dto.getBrCdNm());
			vo.setPrdLvlCdNm(dto.getPrdLvlCdNm());
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto PrdCarInfoVO
	 * @return PrdCarInfoDTO
	 */
	public static PrdCarInfoDTO toDTO(PrdCarInfoVO vo) {
		PrdCarInfoDTO dto = null;
		if (vo != null) {
			dto = new PrdCarInfoDTO();
			dto.setId(vo.getId());
			dto.setPrdId(vo.getPrdId());
			dto.setCarLen(vo.getCarLen());//车身长度
			dto.setPrdYr(vo.getPrdYr());//生产年份（PRD0010）
			dto.setPrdCyCd(vo.getPrdCyCd());//国别代码（PRD0011）
			dto.setOutVol(vo.getOutVol());//排量(L)
			dto.setGrboxTypCd(vo.getGrboxTypCd());//变速箱类型代码（PRD0012）
			dto.setGrboxCfg(vo.getGrboxCfg());//GRBOX_CFG
			dto.setSeatQtyCd(vo.getSeatQtyCd());//座位（PRD0013）
			dto.setEngMdl(vo.getEngMdl());//发动机型号
			dto.setDrvTypCd(vo.getDrvTypCd());//驱动形式（PRD0003）
			dto.setCarStrcCd(vo.getCarStrcCd());//车身结构（PRD0014）
			dto.setCarStrcCfg(vo.getCarStrcCfg());//CAR_STRC_CFG
			dto.setPowerTypCd(vo.getPowerTypCd());//动力方式（PRD0015）
			dto.setCarCl(vo.getCarCl());//CAR_CL
			dto.setMaxSpd(vo.getMaxSpd());//MAX_SPD
			dto.setPrdWayCd(vo.getPrdWayCd());//生产方式（PRD0016）
			dto.setCarMdl(vo.getCarMdl());//CAR_MDL
			dto.setOthCfg(vo.getOthCfg());//OTH_CFG
			dto.setIsValid(vo.getIsValid());
			dto.setAudStsCd(vo.getAudStsCd());
			dto.setGuidePc(vo.getGuidePc());
			dto.setEmiStdCd(vo.getEmiStdCd());
			dto.setBatDeg(vo.getBatDeg());
			dto.setExtMil(vo.getExtMil());
			dto.setCarVol(vo.getCarVol());
			dto.setPrdLvlCd(vo.getPrdLvlCd());
			
			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			
			dto.setPrdCyCdNm(vo.getPrdCyCdNm());//国别
			dto.setGrboxTypCdNm(vo.getGrboxTypCdNm());//变速箱类型
			dto.setSeatQtyCdNm(vo.getSeatQtyCdNm());//座位
			dto.setDrvTypCdNm(vo.getDrvTypCdNm());//驱动形式
			dto.setCarStrcCdNm(vo.getCarStrcCdNm());//车身结构
			dto.setPowerTypCdNm(vo.getPowerTypCdNm());//动力方式
			dto.setPrdWayCdNm(vo.getPrdWayCdNm());//生产方式
			dto.setAudStsCdNm(vo.getAudStsCdNm());
			dto.setCarStrcCfgNm(vo.getCarStrcCfgNm());//车身结构配置
			
			//--------------------扩展数据----------------------------------//
			dto.setPrdTypCd(vo.getPrdTypCd());
			dto.setMfrId(vo.getMfrId());
			dto.setBrCd(vo.getBrCd());
			dto.setPrdMdl(vo.getPrdMdl());
			dto.setPrdNm(vo.getPrdNm());
			dto.setMfrNm(vo.getMfrNm());
			dto.setPrdTypCdNm(vo.getPrdTypCdNm());
			dto.setBrCdNm(vo.getBrCdNm());
			
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<PrdCarInfoDTO>
	 * @return List<PrdCarInfoVO>
	 */
	public static List<PrdCarInfoVO> toVOList(List<PrdCarInfoDTO> list) {
		List<PrdCarInfoVO>  voList = new ArrayList<PrdCarInfoVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrdCarInfoDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<PrdCarInfoVO>
	 * @return List<PrdCarInfoDTO>
	 */
	public static List<PrdCarInfoDTO> toDTOList(List<PrdCarInfoVO> list) {
		List<PrdCarInfoDTO>  dtoList = new ArrayList<PrdCarInfoDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrdCarInfoVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
